package cn.appsys.service.back.appinfo;

import java.util.List;

import cn.appsys.pojo.AppCategory;
import cn.appsys.pojo.AppInfo;
import cn.appsys.pojo.AppVersion;
import cn.appsys.pojo.DataDictionary;

public interface BackAppInfoService {
	
	/**
	 * 按条件查询待审核状态的App信息列表信息并分页显示
	 * @param querySoftwareName 软件名称
	 * @param queryFlatformId app所属平台id
	 * @param queryCategoryLevel1 所属一级分类id
	 * @param queryCategoryLevel2 所属二级分类id
	 * @param queryCategoryLevel3 所属三级分类id
	 * @param from 位置起始偏移量
	 * @param pageSize 页面大小
	 * @return
	 */
	List<AppInfo> queryAppInfo(String querySoftwareName,
			Integer queryFlatformId,
			Integer queryCategoryLevel1,
			Integer queryCategoryLevel2,
			Integer queryCategoryLevel3,
			Integer from,
			Integer pageSize);
	
	/**
	 * 按条件查询待审核状态的App信息列表信息的总数
	 * @param querySoftwareName 软件名称
	 * @param queryFlatformId app所属平台id
	 * @param queryCategoryLevel1 所属一级分类id
	 * @param queryCategoryLevel2 所属二级分类id
	 * @param queryCategoryLevel3 所属三级分类id
	 * @return
	 */
	int queryTotalCount(String querySoftwareName,
		Integer queryFlatformId,
	    Integer queryCategoryLevel1,
	    Integer queryCategoryLevel2,
		Integer queryCategoryLevel3);
	
	/**
	 * 根据当前类别ID查询当前类别下的子级类别信息列表
	 * @param parentId 类别ID
	 * @return
	 */
	List<AppCategory> queryappCategoryList(Integer categoryId);
	
	/**
	 * 查询所有的平台信息列表
	 * @return
	 */
	List<DataDictionary> queryAllFlatFrom(String typeCode);
	
	/**
	 * 根据ID查询App信息列表信息
	 * @param id
	 * @return
	 */
	AppInfo getAppInfo(Integer appId);
	
	/**
	 * 根据ID查询平台版本信息
	 * @param versionId
	 * @return
	 */
	AppVersion getAppVersionById(Integer versionId);
	
	/**
	 * 根据Id修改App状态信息
	 * @param id
	 * @return
	 */
	boolean upStatus(Integer status,Integer id);
	
}
